#include<iostream>
#include<unordered_map>

using namespace std;

struct ListNode {
    int val;
    ListNode* next;
    ListNode() : val(0), next(nullptr) {}
    ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNodenext) : val(x), next(next) {}
 };
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head)
    {
        if (!head)
            return head;
        ListNode* cur = head;
        while (cur->next)
        {
            if (cur->val == cur->next->val)
                cur->next = cur->next->next;
            else 
                cur = cur->next;
        }
        return head;
    }
};
